//package com.zjl.legendary.web;
//
//import com.zjl.legendary.dto.QuestionDto;
//import com.zjl.legendary.dto.TaskQuestionDto;
//import com.zjl.legendary.entity.TaskItem;
//import com.zjl.legendary.entity.UserTask;
//import com.zjl.legendary.service.impl.QuestionServiceImpl;
//import com.zjl.legendary.service.impl.TaskItemServiceImpl;
//import com.zjl.legendary.service.impl.UserTaskServiceImpl;
//import com.zjl.legendary.service.intf.QuestionService;
//import com.zjl.legendary.service.intf.TaskItemService;
//import com.zjl.legendary.service.intf.UserTaskService;
//
//import javax.servlet.annotation.WebServlet;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * @author zhoujingluo
// * @date 2021/5/29 21:34
// */
//@WebServlet("/api/taskitem")
//public class TaskItemServlet extends BaseServlet {
//    private TaskItemService taskItemService = new TaskItemServiceImpl();
//    private UserTaskService userTaskService = new UserTaskServiceImpl();
//    private QuestionService questionService = new QuestionServiceImpl();
//
//    /**
//     * 新增任务详情
//     * @param req 请求
//     * @param resp 响应
//     * @return 返回响应结果
//     */
//    public String add(HttpServletRequest req, HttpServletResponse resp){
//        //创建空集合用于存储用户任务详情
//        List<TaskItem> tilist = new ArrayList<>();
//        //收参
//        Integer nums = Integer.valueOf(req.getParameter("nums"));
//        Integer tid = Integer.valueOf(req.getParameter("tid"));
//        //封装用户任务详情
//        for (int i = 1;i <= nums;i++){
//            Integer qid = Integer.valueOf(req.getParameter("qid" + i));
//            TaskItem taskItem = new TaskItem();
//            taskItem.setTid(tid);
//            taskItem.setQid(qid);
//            tilist.add(taskItem);
//        }
//        //批量存储用户任务详情
//        if (taskItemService.saveBatch(tilist)){
//            //保存成功跳转展示任务页面
//            return "redirect:/api/task?action=show&method=get";
//        } else {
//            //保存失败跳转新增任务页面
//            return "redirect:/api/question?action=showForTask&method=get";
//        }
//    }
//
//    /**
//     * 展示任务详情
//     * 由于“详情”与“测试”都需要任务详情，
//     * 为简化代码，在请求路径中以参数形式包含要跳转的页面信息
//     * 该方法根据接收到的跳转信息进行相应的页面跳转
//     * @param req 请求
//     * @param resp 响应
//     * @return 返回响应结果
//     */
//    public String show(HttpServletRequest req, HttpServletResponse resp){
//        //收参
//        //获取跳转的页面信息
//        String topage = req.getParameter("to");
//        //获取任务id
//        Integer tid = Integer.valueOf(req.getParameter("tid"));
//        //根据任务id查询任务详情
//        List<TaskQuestionDto> item = taskItemService.queryByTid(tid);
//        //根据任务id查询当前任务信息
//        UserTask currtask = userTaskService.queryById(tid);
//        //未添加任务详情时，需要获取题库列表用于任务详情的添加
//        List<QuestionDto> qlist = questionService.query();
//        //存储查询结果
//        req.setAttribute("item",item);
//        req.setAttribute("currtask",currtask);
//        req.getSession().setAttribute("qlist",qlist);
//        //转发给对应的页面
//        return "forward:/safety/"+topage;
//    }
//
//    /**
//     * 用户进行任务测试
//     * 用户完成测试需要保存用户的答案，以及修改任务状态
//     * 用户完成答题，则修改对应任务详情的状态
//     * 完成答题修改任务状态
//     * @param req 请求
//     * @param resp 响应
//     * @return
//     */
//    public String test(HttpServletRequest req, HttpServletResponse resp){
//        //收参
//        //任务id
//        String tid = req.getParameter("tid");
//        //任务详情id数组
//        String[] ids = req.getParameterValues("ids");
//        //用户答案数组
//        String[] uanswers = req.getParameterValues("uanswers");
//        
//        taskItemService.test(tid,ids,uanswers);
//        
//        //完成测试跳转到展示任务列表页面
//        return "redirect:/api/task?action=show&method=get";
//    }
//}
